An application is computer software that employs the capabilities of a computer to perform a task for a computer user. Applications include computer executable code that is derived from computer source code files. An application may also include configuration files and support files for customizing the operation of the software.
Although the process of developing and testing applications for simple programs may consist of a single file being compiled, the computer source code for complex software may consist of many files that may be configured in different ways to produce application versions customized specifically for each environment in which the application may execute. The environment is the configuration of the hardware, operating system, and enabling programs in which an application executes. Therefore, development and testing of an application can require the creation of development and test environments that simulate the environments in which the application may execute. The process of creating development and test environments for each application is not only complicated and time consuming, often requiring weeks of intensive work, but is also a process that must be repeated for each occasion when the application is to be developed or tested.